/*
 * MathFunction.cpp
 *
 *  Created on: 21/nov/2010
 *      Author: computer
 */
#include "MathFunction.h"
#include "SpecialFunction.h"
#include "Function.h"

void registerMathFunction(Context* toRegister) {
	toRegister->addDeclaration("gamma", createFunction<Integer,Real,GammaI>("gamma", Pattern<>(TypePattern("Integer", ""))));
	toRegister->addDeclaration("gamma", createFunction<Real,Real,GammaR>("gamma", Pattern<>(TypePattern("Real", ""))));
	toRegister->addDeclaration("zeta", createFunction<Integer,Real,ZetaRiemannI>("zeta", Pattern<>(TypePattern("Integer", ""))));
	toRegister->addDeclaration("zeta", createFunction<Real,Real,ZetaRiemannR>("zeta", Pattern<>(TypePattern("Real", ""))));
	toRegister->addDeclaration("erf", createFunction<Integer,Real,ErrorFunctionI>("erf", Pattern<>(TypePattern("Integer", ""))));
	toRegister->addDeclaration("erf", createFunction<Real,Real,ErrorFunctionR>("erf", Pattern<>(TypePattern("Real", ""))));
	toRegister->addDeclaration("beta", createFunction<Real,Real,Real,BetaRR>("beta", Pattern<>(TypePattern("Real", "")), Pattern<>(TypePattern("Real", ""))));
	toRegister->addDeclaration("beta", createFunction<Real,Integer,Real,BetaRI>("beta", Pattern<>(TypePattern("Real", "")), Pattern<>(TypePattern("Integer", ""))));
	toRegister->addDeclaration("beta", createFunction<Integer,Real,Real,BetaIR>("beta", Pattern<>(TypePattern("Integer", "")), Pattern<>(TypePattern("Real", ""))));
	toRegister->addDeclaration("beta", createFunction<Integer,Integer,Real,BetaII>("beta", Pattern<>(TypePattern("Integer", "")), Pattern<>(TypePattern("Integer", ""))));
}
